home *** CD-ROM | disk | FTP | other *** search
- Opt c-
- Section "Spillage Shade Bob Code",Code_c
-
- IncDir Df1:
-
- Start Bra.s Setup
- Bra.s DoNext
- Bra DoVBL
- Setup Bra ResetPointers
- DoNext Bra DoNextShade
-
- DoVBL Lea CopperList(pc),a0
- Move.l a0,$Dff080
- Moveq #3,d7
- ShadeLoop1 Move.l d7,-(sp)
- Bsr DoXYSine
- Bsr DoBob
- Bsr AddSines
- Move.l (sp)+,d7
- Dbf d7,ShadeLoop1
-
- Move.l SubberDat(pc),d0
- Lea SineXPt(pc),a6
- Sub.l d0,(a6)
- Lea SineYPt(pc),a6
- Sub.l d0,(a6)
- Lea YSubDo(pc),a6
- Tst.w (a6)
- Beq NoSubDo
- Lea YSub(pc),a6
- Eor.w #1,(a6)
- NoSubDo Rts
-
- AddSines Move.l AdderDat(pc),d0
- Lea SineXPt(pc),a6
- Add.l d0,(a6)
- Lea SineYPt(pc),a6
- Add.l d0,(a6)
- Rts
-
- DoNextShade Lea SineXPtTabPt1(pc),a6
- Lea SineXPt(pc),a5
- Lea SinePtTab1a(pc),a4
- Bsr SetVarLong
- Lea SineXPtTabPt2(pc),a6
- Lea SineXPt1(pc),a5
- Lea SinePtTab1b(pc),a4
- Bsr SetVarLong
- Lea SineYPtTabPt1(pc),a6
- Lea SineYPt(pc),a5
- Lea SinePtTab2a(pc),a4
- Bsr SetVarLong
- Lea SineYPtTabPt2(pc),a6
- Lea SineYPt1(pc),a5
- Lea SinePtTab2b(pc),a4
- Bsr SetVarLong
-
- Lea SineXAddTabPt1(pc),a6
- Lea SineXAdd(pc),a5
- Lea SineAddTab1a(pc),a4
- Bsr SetVarLong
- Lea SineXAddTabPt2(pc),a6
- Lea SineXAdd1(pc),a5
- Lea SineAddTab1b(pc),a4
- Bsr SetVarLong
- Lea SineYAddTabPt1(pc),a6
- Lea SineYAdd(pc),a5
- Lea SineAddTab2a(pc),a4
- Bsr SetVarLong
- Lea SineYAddTabPt2(pc),a6
- Lea SineYAdd1(pc),a5
- Lea SineAddTab2b(pc),a4
- Bsr SetVarLong
-
- Lea RevTabPt(pc),a6
- Lea YSubDo(pc),a5
- Lea RevTab(pc),a4
- Bsr SetVarWord
- Lea BobTabPt(pc),a6
- Lea BobNo(pc),a5
- Lea BobTab(pc),a4
- Bsr SetVarWord
-
- Moveq #0,d0
- Move.w #32*6,d0
- Mulu.w BobNo(pc),d0
- Lea Bob(pc),a5
- Add.l a5,d0
- Lea BobGFX(pc),a5
- Move.l d0,(a5)
-
- Lea AdderTabPt(pc),a6
- Lea AdderDat(pc),a5
- Lea SinePtTab1a(pc),a4
- Bsr SetVarLong
- Lea SubberTabPt(pc),a6
- Lea SubberDat(pc),a5
- Lea SinePtTab2b(pc),a4
- Bsr SetVarLong
- Rts
-
- SetVarLong Move.l (a6),a0
- Move.l (a0)+,d0
- Cmpi.l #-1,d0
- Beq NoMoreTabL
- Move.l d0,(a5)
- Move.l a0,(a6)
- Rts
- NoMoreTabL Move.l a4,(a6)
- Bra SetVarLong
-
- SetVarWord Move.l (a6),a0
- Move.w (a0)+,d0
- Cmpi.w #-1,d0
- Beq NoMoreTabW
- Move.w d0,(a5)
- Move.l a0,(a6)
- Rts
- NoMoreTabW Move.l a4,(a6)
- Bra SetVarWord
-
- ResetPointers Lea Piccy(pc),a6
- Move.l a0,0(a6)
- Move.w d0,4(a6)
- Lea SineXPtTabPt1(pc),a6
- Lea SinePtTab1a(pc),a0
- Move.l a0,00(a6)
- Lea SinePtTab2a(pc),a0
- Move.l a0,04(a6)
- Lea SineAddTab1a(pc),a0
- Move.l a0,08(a6)
- Lea SineAddTab2a(pc),a0
- Move.l a0,12(a6)
- Lea SinePtTab1b(pc),a0
- Move.l a0,16(a6)
- Lea SinePtTab2b(pc),a0
- Move.l a0,20(a6)
- Lea SineAddTab1b(pc),a0
- Move.l a0,24(a6)
- Lea SineAddTab2b(pc),a0
- Move.l a0,28(a6)
- Lea RevTab(pc),a0
- Move.l a0,32(a6)
- Lea BobTab(pc),a0
- Move.l a0,36(a6)
- Lea SinePtTab1b+8(pc),a0
- Move.l a0,40(a6)
- Lea SinePtTab2b+12(pc),a0
- Move.l a0,44(a6)
-
- Lea CopperBPLS(pc),a0
- Move.l Piccy(pc),d0
- Move.w Planes(pc),d7
-
- SetBPLLoop Move.l d0,d1
- Move.w d1,6(a0)
- Swap d1
- Move.w d1,2(a0)
- Add.l #$2e00,d0
- Addq #8,a0
- Dbf d7,SetBPLLoop
-
- Move.w Planes(pc),d7
- Lea CopperCon(pc),a0
- Addq #1,d7
- Asl.b #4,d7
- Or.b #$02,d7
- Move.b d7,02(a0)
- Rts
-
- Piccy Dc.l $0000
- Planes Dc.w 4
- NextPlane Dc.l $2e00
- BobGFX Dc.l 0
- XPos Dc.w 0
- YPos Dc.w 0
- YSub Dc.w 0
- YSubDo Dc.w 0
- Size Dc.w (32*64)+3
- Mod Dc.w 34
- BobNo Dc.w 0
-
- DoBob Lea $Dff000,a6
- Moveq #0,d0
- Move.w XPos(pc),d0
- Move.w YPos(pc),d1
- Lea YSub(pc),a5
- Tst.w (a5)
- Beq NoSubY
- Move.w #255,d2
- Sub.w d1,d2
- Move.w d2,d1
- NoSubY Mulu.w #40,d1
- Ror.l #4,d0
- Asl.w #1,d0
- Add.w d0,d1
- Move.w #0,d0
- Addi.l #$0f6a0000,d0
- Move.l d0,d3
- Add.l Piccy(pc),d1
-
- Bsr BlitterWait
- Move.l #-1,$44(a6)
- Move.w #-1,$74(a6)
- Lea Buffer1(pc),a4
- Move.l a4,$54(a6)
- Move.w #0,$66(a6)
- Move.w #0,$64(a6)
- Move.l #$01f00000,$40(a6)
- Move.w Size(pc),$58(a6)
- Move.l a4,d0
- Add.w #$400,a4
- Move.l a4,d2
- Move.w Planes(pc),d5
- Move.l d1,d4
- Move.w Mod(pc),d6
-
- DoShade Bsr BlitterWait
- Move.l d1,$4c(a6)
- Move.l d0,$50(a6)
- Move.l d2,$54(a6)
- Move.w d6,$62(a6)
- Move.l #0,$64(a6)
- Move.l #$0dc00000,$40(a6)
- Move.w Size(pc),$58(a6)
-
- Bsr BlitterWait
- Move.l d1,$48(a6)
- Move.l d0,$4c(a6)
- Move.l BobGFX(pc),$50(a6)
- Move.l d1,$54(a6)
- Move.w d6,$60(a6)
- Move.w #0,$62(a6)
- Move.w d6,$66(a6)
- Move.l d3,$40(a6)
- Move.w Size(pc),$58(a6)
- Exg.l d0,d2
- Add.l NextPlane(pc),d1
- Dbf d5,DoShade
- Rts
-
- BlitterWait Btst #14,$2(a6)
- Btst #14,$2(a6)
- Bne BlitterWait
- Rts
-
- DoXYSine Lea XPos(pc),a4
- Lea SineXPt(pc),a5
- Bsr DoSine
- Move.w d3,(a4)
- Lea YPos(pc),a4
- Lea SineYPt(pc),a5
- Bsr DoSine
- Move.w d3,(a4)
-
- Lea XPos(pc),a4
- And.w #$ff,0(a4)
- And.w #$ff,2(a4)
- Add.w #16,0(a4)
- Rts
-
- DoSine Lea SineData(pc),a6
- Moveq #0,d2
- Moveq #0,d3
- Move.l 08(a5),d0
- Move.l 12(a5),d1
- Add.l d0,00(a5)
- Add.l d1,04(a5)
- And.l #$ffe,00(a5)
- And.l #$ffe,04(a5)
- Move.l 00(a5),d0
- Move.l 04(a5),d1
- Move.w (a6,d0.l),d2
- Move.w (a6,d1.l),d3
- Add.l d2,d3
- Asl.w #3,d3
- Add.w #4096,d3
- Asr.w #5,d3
- Rts
-
- XSize Dc.w 0
- YSize Dc.w 0
-
- SineXPt Dc.l 122
- SineXPt1 Dc.l 72
- SineXAdd Dc.l 12
- SineXAdd1 Dc.l 4
-
- SineYPt Dc.l 24
- SineYPt1 Dc.l 252
- SineYAdd Dc.l 6
- SineYAdd1 Dc.l 14
-
- SineXPtTabPt1 Dc.l 0
- SineXPtTabPt2 Dc.l 0
- SineXAddTabPt1 Dc.l 0
- SineXAddTabPt2 Dc.l 0
-
- SineYPtTabPt1 Dc.l 0
- SineYPtTabPt2 Dc.l 0
- SineYAddTabPt1 Dc.l 0
- SineYAddTabPt2 Dc.l 0
-
- RevTabPt Dc.l 0
-
- BobTabPt Dc.l 0
-
- AdderTabPt Dc.l 0
- SubberTabPt Dc.l 0
-
- AdderDat Dc.l 0
- SubberDat Dc.l 0
-
- SinePtTab1a Dc.l 122,14,26,56,22,98,76,24,36,104,04,34,66,58,24,86,78,46,52
- Dc.l 44,88,24,28,128,44,94,26,36,62,58,46,-1
- SinePtTab2a Dc.l 42,18,06,116,28,54,66,26,34,112,106,08,102,94,-1
-
- SinePtTab1b Dc.l 14,26,56,22,98,76,24,36,128,44,94,26,36,62,58,46,-1
- SinePtTab2b Dc.l 42,18,06,116,28,54,66,26,34,112,106,08,102,94,104,04,34,66,58,24,86,78,46,-1
-
- SineAddTab1a Dc.l 4,14,6,28,16,8,34,22,18,2,10,32,30,20,18,4,2,8,6,12,16,-1
- SineAddTab2a Dc.l 8,2,16,34,28,40,22,32,18,4,14,22,26,18,14,4,8,22,-1
-
- SineAddTab1b Dc.l 8,32,18,4,14,22,22,18,4,2,8,6,12,16,-1
- SineAddTab2b Dc.l 2,16,14,6,28,16,8,34,34,28,40,22,26,18,14,4,8,22,4,-1
-
- BobTab Dc.w 0,1,2,3,4,5,6,7,8,9,10,11,1,6,5,2,8,9,3,7,3,10,1,0,4,6,-1
-
- RevTab Dc.w 0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,0,1,0,1,-1
-
- Cmv Macro
- Dc.w \2,\1
- EndM
-
- Cwt Macro
- Dc.w (\1*$100)+$01,$fffe
- EndM
-
- Pal Macro
- Dc.w $ffe1,$fffe
- EndM
-
- EndCop Macro
- Dc.w $ffff,$fffe
- EndM
-
- CopperList Cwt $15
- Cmv $0200,BplCon0
- Cmv $00bb,BplCon1
- Cmv $000a,BplCon2
- Cmv $0034,DdfStrt
- Cmv $00c8,DdfStop
- Cmv $1681,DiwStrt
- Cmv $36c1,DiwStop
- Cmv $0,BplMod1
- Cmv $0,BplMod2
-
- Cwt $25
-
- CopperBPLS Cmv $c,BplPt0h
- Cmv $0,BplPt0l
- Cmv $c,BplPt1h
- Cmv $0,BplPt1l
- Cmv $c,BplPt2h
- Cmv $0,BplPt2l
- Cmv $c,BplPt3h
- Cmv $0,BplPt3l
- Cmv $c,BplPt4h
- Cmv $0,BplPt4l
-
- Cwt $28
- CopperCon Cmv $1200,BplCon0
-
- Pal
- Cwt $38
- Cmv $8010,$09c
- EndCop
-
- Buffer1 Ds.b ($400)
- Buffer2 Ds.b ($400)
-
- SineData Incbin SysData/Sine1024Bs.Dat
- Incbin SysData/Sine1024Bs.Dat
-
- Bob Incbin BitMaps/ShadeBobs.Raw
-
- ;Copper Registers
-
- Cop1lc = $080
- Cop1lch = $080
- Cop1lcl = $082
- Cop2lc = $084
- Cop2lch = $084
- Cop2lcl = $086
- Copjmp1 = $088
- Copjmp2 = $08A
- Diwstrt = $08E
- Diwstop = $090
- Ddfstrt = $092
- Ddfstop = $094
- Dmacon = $096
- Clxcon = $098
- Intena = $09A
- Intreq = $09C
-
- ;BitPlane Registers
-
- BplCon0 = $100
- BplCon1 = $102
- BplCon2 = $104
- BplMod1 = $108
- BplMod2 = $10a
-
- BplPt0h = $0e0
- BplPt0l = $0e2
- BplPt1h = $0e4
- BplPt1l = $0e6
- BplPt2h = $0e8
- BplPt2l = $0ea
- BplPt3h = $0ec
- BplPt3l = $0ee
- BplPt4h = $0f0
- BplPt4l = $0f2
- BplPt5h = $0f4
- BplPt5l = $0f6
-
-
-
-
-
-